<?

/**
 * Klasa ArrayUtils - docelowo statyczne metody obrabiajace dane tablicowe
 *
 */
class ArrayUtils{
	/**
	 * Metoda statyczna conv - alias na iconv - konwertuje tablice
	 *
	 * @param string $enc1 - Encoding
	 * @param string $enc2 - Docelowy Encoding
	 * @param array $arr
	 * @return array $arr
	 */
	public static function conv($enc1, $enc2, $arr){
		if (count($arr) > 0){
			foreach ($arr as $k => $v){
				$arr[$k] = iconv($enc1, $enc2, $v);
			}
		}
		return $arr;
	}
	
	/**
	 * Dziwne zachowanie formularzy - usuwa quotowania " i '
	 * @var - string
	 */
	
	public static function deQstr($var){
		$var = str_replace('\"', '"', $var);
		$var = str_replace("\'", "'", $var);
		return $var;
	}
	
	/**
	 * Metoda statyczna splitByPrefix - wydziela z tablicy kolejne tablice na podstawie prefiksow podanych jako drugi parametr
	 * Przekazana tablica zostaje zmodyfikowana - zostaja z niej usuniete elementy wydzielone do pozostalych tablic. Wydzielone tablice zwracane sa jako elementy tablicy o kluczach takich jak poszczegolne prefiksy.
	 * @example $output=splitByPrefix($input=array('foo'=>1, 'pref_bar'=>2), array('pref_')); => $input=array('foo'=>1); $output=array('pref_'=>array('bar'=>2));
	 *
	 * @param array &$array
	 * @param array $prefixes
	 * @return array
	 */
	public static function splitByPrefix(&$array, $prefixes){
		$keys = array_keys($array);
		$arrays = array();
		foreach ($keys as $key) {
			foreach ($prefixes as $prefix)
				if (strpos($key, $prefix)===0) {
					$arrays[$prefix][str_replace($prefix, '', $key)] = $array[$key];
					unset($array[$key]);
				}
		}
		return $arrays;
	}
}
?>